/*
  棋盘游戏
  题目描述
    你在玩一个棋盘游戏，棋盘中有一个 n 个顶点 m 条边的有向图，
    第 i 条边连接顶点 ui 和 vi，长度为 wi。
    在这个游戏中，你一开始需要将双手放到两个不同的顶点上，每次你可以将一只手从一个顶点 u 通过一条有向边移动到另一个顶点 v。
    如果你的双手位于同一个点，游戏就结束了，游戏过程中你的双手走过的总路程就是本场游戏的代价。

    现在有 q 个问题，每次问题指定一个顶点 p，表示游戏开始时左手在顶点 1 处，右手在顶点 p 处，
    你需要求出本场游戏的最小代价。
  输入描述
    第一行两个整数 n,m,q，表示顶点的数量，边的数量和问题的数量。
    接下来 m 行的第 i 行有三个整数 ui, vi, wi，表示一条长度为 wi，从 ui 指向 vi 的有向边。
    最后的 q 行每行一个整数 p 表示一个问题。
  输出描述
    对于每个问题，输出一个整数表示最小代价；
    特别地，如果游戏永远不能结束，也就是说双手不能移动到同一顶点，则输出 −1。
  样例1
    输入
      5 7 4
      1 2 2
      2 4 1
      4 1 4
      2 5 3
      5 4 1
      5 2 4
      2 1 1
      2
      3
      4
      5
    输出
      1
      -1
      3
      4
  提示
对于 30% 的数据: q = 1
对于 100% 的数据:
  1 ≤ n ≤ 10^5, 1 ≤ m ≤ 2⋅10^5, 1 ≤ q < n, 1 ≤ wi ≤ 10^9, 2 ≤ p ≤ n
*/